#if !defined(ximera_audio_openal_sounddata_hpp)
#define ximera_audio_openal_sounddata_hpp

// -----------------------------------------------------------

#include <ximera/audio/isounddata.hpp>
#include <ximera/audio/openal/openal.hpp>

namespace ximera { namespace audio { namespace openal
{
    class XIMERA_PLUGIN_API SoundData : public ISoundData
    {
    public:
        SoundData();
        SoundData(String const& fileName);
        virtual ~SoundData();        

        virtual DataMode dataMode() const;
        virtual void dataMode(DataMode mode);

        virtual ChannelMode channelMode() const;
        virtual void channelMode(ChannelMode mode);

        ALuint buffer() const;

    private:
        ALuint _buffer;

        void clear();
    };
}}}

// -----------------------------------------------------------

#endif
